home *** CD-ROM | disk | FTP | other *** search
-
- -- -----------------------------------------------------------------
- -- Random numbers
- -- -----------------------------------------------------------------
- function random(limit)
- -- return number from [0, limit)
- if limit <= 0 then
- return 0
- else
- return math.random(limit) - 1
- end
- end
- -- -----------------------------------------------------------------
- function randint(start, max)
- -- return number from [start, max]
- if start >= max then
- return start
- else
- return math.random(start, max)
- end
- end
-
- -- -----------------------------------------------------------------
- -- Switch statement for lua
- -- -----------------------------------------------------------------
- function switch(case)
- return function(codetable)
- local f = codetable[case] or codetable.default
- if f then
- if type(f) == "function" then
- return f(case)
- else
- error("case '"..tostring(case).."' is not a function")
- end
- end
- end
- end
-
- -- -----------------------------------------------------------------
- -- Manipulation with tables
- -- -----------------------------------------------------------------
- function createArray(size)
- local array = {}
- for i = 0, size - 1 do
- array[i] = 0
- end
- return array
- end
-
- function isIn(item, table)
- for index, value in pairs(table) do
- if value == item then
- return true
- end
- end
- return false
- end
-
- function isRange(value, min, max)
- return min <= value and value <= max
- end
-
- function countPairs(table)
- local count = 0
- for index, value in pairs(table) do
- count = count + 1
- end
- return count
- end
-
- -- -----------------------------------------------------------------
- -- Planning functions
- -- -----------------------------------------------------------------
- local function isTime(delay, count)
- return count >= delay
- end
-
- function planTimeAction(delay, action)
- local waitTime = 0
- game_planAction(function(count)
- local done = false
- if dialog_isDialog() then
- waitTime = count
- elseif isTime(delay + waitTime, count) then
- action()
- done = true
- end
- return done
- end)
- end
-
- function planDialog(actor_index, delay, dialog, action)
- planTimeAction(delay, function()
- model_talk(actor_index, dialog, 100, 0, true)
- if nil ~= action then
- action()
- end
- end)
- end
-
- -- -----------------------------------------------------------------
- -- Options
- -- -----------------------------------------------------------------
- function optionsGetParam(paramName)
- return options_getParam(paramName)
- end
- function optionsGetAsInt(paramName)
- local value = tonumber(options_getParam(paramName))
- if nil == value then
- value = 0
- end
- return value
- end
-
-